package com.hw.shortlink.admin.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.hw.shortlink.admin.dao.entity.User;
import com.hw.shortlink.admin.dto.req.UserLoginReqDto;
import com.hw.shortlink.admin.dto.req.UserRegisterReqDto;
import com.hw.shortlink.admin.dto.req.UserUpdateReqDto;
import com.hw.shortlink.admin.dto.resp.UserLoginRespDto;
import com.hw.shortlink.admin.dto.resp.UserRespDto;

public interface UserService extends IService<User> {

    /**
     * 根据用户名查询用户信息
     * @param username
     * @return
     */
    UserRespDto getUserByUsername(String username);


    /**
     * 查询用户名是否存在
     * @param username
     * @return
     */
    Boolean availableUsername(String username);


    /**
     * 用户注册
     * @param userRegisterReqDto
     */
    void register(UserRegisterReqDto userRegisterReqDto);

    /**
     * 通过用户名修改用户信息
     * @param userUpdateReqDto
     */
    void update(UserUpdateReqDto userUpdateReqDto);

    /**
     * 用户登录
     * @param userLoginReqDto
     * @return
     */
    UserLoginRespDto login(UserLoginReqDto userLoginReqDto);


    /**
     * 检查用户是否登陆
     * @param token
     * @return
     */
    Boolean checkLogin(String username,String token);


    /**
     * 用户退出登陆
     * @param username
     * @param token
     */
    void logout(String username, String token);
}
